<!DOCTYPE HTML>
<html>

<head>
  <!-- ************* Meta ************* -->
  <title>Eclipse N4JS Language and IDE</title>

  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1" />
  
  <!-- ************* OpenGraph ************-->
  <meta name="description" content="The Eclipse N4JS language and its IDE enable high-quality JavaScript development for large Node.js projects.">
  
  <meta property="og:site_name" content="Eclipse N4JS"/>
  <meta property="og:title" content="Eclipse N4JS Language and IDE"/>
  <meta property="og:url" content="https://eclipse.org/n4js"/>
  <meta property="og:description" content="The Eclipse N4JS language and its IDE enable high-quality JavaScript development for large Node.js projects."/>
  <meta property="og:image" content="images/n4js.png">

  <!-- ************* JQuery ************* -->
  <script src="https://code.jquery.com/jquery-1.12.4.js"></script>
  <script src="https://code.jquery.com/ui/1.12.0/jquery-ui.js"></script>
  
  <!-- ************* Favicon ************-->
  <link rel="icon" href="images/favicon.ico" />
  <link rel="icon" type="image/png" href="images/favicon-32x32.png" sizes="32x32" />
  <link rel="icon" type="image/png" href="images/favicon-16x16.png" sizes="16x16" />
  
  <!-- ************* Styles ************* -->
  <link rel="stylesheet" type="text/css" href="styles/styles.min.css">

  <!-- ****************** Required for buttom to top scripts ****************** -->
  <link rel="stylesheet" type="text/css" href="styles/backtotop.css">
</head>

<body>

  <header class="Grid">
    <div class="Cell Cell--4-12">
      <a href="index.html"><img src="images/n4js-logo.png" alt="Eclipse N4JS Language and IDE"></a>
    </div>

    <div class="Cell Cell--8-12">
      <nav>
         <a href="downloads.html">Download</a> ·
         <a href="community.html">Community</a> ·
         <a href="userguides/index.html">Documentation</a>
      </nav>
    </div>
  </header>


  <div class="Main">

    <article class="Grid" id="download">
      <div class="Cell Cell--12-12">
        <br/>
        <h1 id="_download">Downloads</h1>
        <p>
          This page provides downloads for both (1) the N4JS builds and (2) the N4JS development environment (including sources) of N4JS.
        </p>
        <br/>
      </div>

      <div class="Cell Cell--12-12 GettingStarted-u-paddingLeft">
        <h2 id ="N4JS_IDE" style="margin-bottom: 0rem;">N4JS Compiler</h2>
        <p class="SystemRequirements" style="margin-bottom: 2rem;">
          System Requirements: <b>Java, Node.js</b> (versions see below)</a>.
        </p>
        <p>
          N4JS provides the following builds at the download locations listed below:
          <ul>
            <li/>Compiler / LSP server as jar
            <li/>Compiler / LSP server as an npm package (available via <a href="https://www.npmjs.com/package/n4js-cli" target="_blank">npmjs.com</a>)
            <li/>VSCode extension for N4JS (available via <a href="https://marketplace.visualstudio.com/items?itemName=n4js.n4js-vscode-extension" target="_blank">VSCode marketplace</a> and the download locations below)
          </ul>
        </p>
        <h3 id ="Download_Locations">Download locations</h3>
        <p>
          <ul>
            <li/><a href="https://projects.eclipse.org/projects/technology.n4js/downloads" target="_blank">Eclipse Foundation</a> (currently outdated)
            <li/><a href="https://download.enfore.com/n4js/" target="_blank">enfore AG</a>
          </ul>
        </p>
        <br/>
      </div>

      <div class="Cell Cell--12-12 GettingStarted-u-paddingLeft">
        <h2 id ="Developer_Environment" style="margin-bottom: 0rem;">N4JS Sources</h2>
        <p class="SystemRequirements" style="margin-bottom: 2rem;">
          System Requirements: <b>Java, Node.js, Yarn</b> (versions see below)</a>.
        </p>
        <p>
          To develop on the N4JS Project (e.g. improve/fix the compiler, lsp server, etc.) we recommend to install the development environment with the <a href="https://www.eclipse.org/downloads/">Eclipse Installer</a>.
          The Eclipse Installer will install the Eclipse IDE, download the N4JS Java sources and configure the workspace.
          Download and start the installer to follow these steps (click on the images to enlarge):
        </p>


        <ol>
          <li>
            <a href="images/oomph/eclipseInstallerMode.png">
              <img src="images/oomph/eclipseInstallerMode.png" alt="Screenshot 1" title="Screenshot Eclipse Installer, Select Mode (Click to see large version)" style="width:100px;float:right" />
            </a>
            Switch to <b>Advanced Mode</b> via the menu located in the upper-right corner.
            This will let you select the product with version and a specific project (N4JS).
          </li>
          <li>
            <a href="images/oomph/eclipseInstallerProductSelection.png">
              <img src="images/oomph/eclipseInstallerProductSelection.png" alt="Screenshot 2" title="Screenshot Eclipse Installer, Select Product (Click to see large version)" style="width:100px;height:50px;float:right" />
            </a>
            Select a product and the product version.
            We recommend "Eclipse IDE for Eclipse Committers" (product version see below).
            Click "Next".
          </li>
          <li>
            <a href="images/oomph/eclipseInstallerProjectSelection.png">
              <img src="images/oomph/eclipseInstallerProjectSelection.png" alt="Screenshot 3" title="Screenshot Eclipse Installer, Select Project (Click to see large version)" style="width:100px;height:50px;float:right" />
            </a>
            Check the entry <b>N4JS</b> in the category "Eclipse Projects" so that it is shown in the catalog view below.
            Click "Next".
          </li>
          <li>
            Configure your desired paths for the installation and workspace directories.
            Check "Show all variables" if not checked already.
            Regarding "N4JS Github repository" you have the choices GIT, HTTPS read/write, and HTTPS read-only.
            In case you chose GIT, mind the trouble shooting hints below.
            Click "Next" and then "Finish".
          </li>
          <li>
            Automatic installation by the Eclipse installer and the setup tasks
            <ol>
              <li>
                The Eclipse Installer will download and install the Eclipse IDE and all its plugins.
              </li>
              <li>
                The installed Eclipse IDE is started by the installer.
              </li>
              <li>
                <a href="images/oomph/ideExecutingStartupTasks.png">
                  <img src="images/oomph/ideExecutingStartupTasks.png" alt="Screenshot 4" title="Screenshot Installer Scripts (Click to see large version)" style="width:100px;float:right" />
                </a>
                The installation continues inside the IDE by running all setup tasks.
                You can see the running setup tasks by clicking on the animated yellow/blue arrow icon in the status bar at the bottom of the IDE window.
                In this step, the workspace is configured automatically.
                This includes fetching the necessary git repository.
                If you have selected GIT and run into an error, mind the hints below.
              </li>
              <li>
                <a href="images/oomph/ideInstallerFinished.png">
                  <img src="images/oomph/ideInstallerFinished.png" alt="Screenshot 5" title="Screenshot Installer Scripts Done (Click to see large version)" style="width:100px;height:50px;float:right" />
                </a>
                Eventually the setup tasks are done, that means the git repository has been cloned and the workspace has been configured (including the project set setup).
              </li>
              <li>
                Now the automatical build kicks in as you can see in the status bar.
                The build will show a lot of errors while still working.
                Eventually the whole project should have been compiled without any errors.
                <a href="images/oomph/ideBuild.png">
                  <img src="images/oomph/ideBuild.png" alt="Screenshot 6" title="Screenshot Automatic Build (Click to see large version)" style="width:100px;float:right" />
                </a>
              </li>
            </ol>
          </li>
          <li>
            Unfortunately, at the moment there will be a few compile errors after everything is finished completely.
            Please consult the <a href="https://github.com/eclipse/n4js/issues/1373">Github issue 1373</a> to fix it.             
          </li>
        </ol>



        <h3 id ="Trouble_Shooting">Trouble Shooting</h3>
        <p>
          <ul>

            <li>
              <b>Compile errors after installation or clean-build</b>
              <p>
                Unfortunately, due to <a href="https://github.com/eclipse/n4js/issues/1373">Github issue 1373</a>, two problems exists which cause some compile errors to show up.
                Please have a look at the linked issue on how to fix that (it is quite easy).
              </p>
            </li>

            <li>
              <b>SSH error when downloading a file 'content.xml'</b>              
              <p>
                This error happens when your Java version is outdated.
                The reason is that Java comes with its own set of SSH certificates which might get incomplete or partly revoked over time.
              </p>
            </li>

            <li>             
              <b>Error "No more authentication methods available"</b>              
              <p>
                This error is related to your choice of the git protocol ("N4JS Github repository"):
                <ul>
                  <li>
                    GIT: Make sure that you have your public/private key pair in your .ssh directory, otherwise the installer will say "No more authentication methods available".
                    In that case, there are two fixes:
                    <ul>
                      <li>
                        Either quit the installer, go to the Eclipse preferences, search for SSH2, and point to your keys.
                        Afterwards, restart the installer by Help->Perform Setup Tasks.
                      </li>
                      <li>
                        Alternativily, chose the button "Back" in the setup tasks wizard and go back to the beginning, click on "Show all Variables" and then change the git repository to HTTPS.
                        Afterwards, click finish to execute the setup tasks again.   
                      </li>
                    </ul>              
                  </li>
                  <li>
                    HTTPS read/write: you need to specify your github user ID below.
                  </li>
                  <li>
                    HTTPS read-only: works always but you cannot push changes.
                  </li>
                </ul> 
              </p>
            </li>
          </ul>
        </p>

        <br/>
      </div>

      <div class="Cell Cell--12-12 GettingStarted-u-paddingLeft">
        <h2 id ="Required_Versions">Required Versions</h2>
        <ul>
          <li>
            <a href="https://adoptopenjdk.net/" target="_blank">Java 11</a>
          </li>
          <li>
            <a href="https://nodejs.org/en/download/" target="_blank">Node.js 12.13.x</a>
          </li>
          <li>
            <a href="https://yarnpkg.com/en/docs/install" target="_blank">Yarn 1.19.x</a>
          </li>
          <li>
            Eclipse Product Version: <a href="https://www.eclipse.org/downloads/" target="_blank">Eclipse 2019-09 release</a>
          </li>
        </ul>
      </div>

    </article>
  </div>

  <footer class="Grid" style="color:#d5dfea">
    <div class="Cell Cell--2-12 m-Cell--withMargin">
      <h2>Quick Links</h2>
      <ul>
        <li><a href="downloads.html">Download</a></li>
        <li><a href="userguides/index.html">Documentation</a></li>
        <li><a href="https://github.com/eclipse/n4js/">Source</a></li>
        <li><a href="https://github.com/eclipse/n4js/issues">Issues</a></li>
      </ul>
    </div>
    <div class="Cell Cell--2-12 m-Cell--withMargin">
      <br/><br/>
      <ul>
        <li><a href="https://www.eclipse.org/forums/index.php/f/365/">Forum</a></li>
        <li><a href="http://n4js.blogspot.de/">Blog</a></li>
        <li><a href="https://dev.eclipse.org/mailman/listinfo/n4js-dev">Mailing List</a></li>
        <li><a href="https://projects.eclipse.org/projects/technology.n4js">Eclipse Project Page</a></li>
        <li><a href="https://twitter.com/n4jsdev">Tweets by n4jsdev</a></li>
      </ul>
    </div>
    <div class="Cell Cell--2-12 m-Cell--withMargin">
      <br/><br/>
      <ul>
        <li><a href="http://www.eclipse.org/">Eclipse Home</a></li>
        <li><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></li>
        <li><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></li>
        <li><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></li>
        <li><a href="http://www.eclipse.org/legal/">Legal</a></li>
      </ul>
    </div>
    <div style="clear: both; height: 0; overflow: hidden;"></div>
  </footer>

  <script type="text/javascript">
    // Create a back to top button
    $('body').append('<a href="#" class="back-to-top" style="right:5%">Back to Top</a>');
    var amountScrolled = 300;
    $(window).scroll(function() {
    if ( $(window).scrollTop() > amountScrolled ) {
      $('a.back-to-top').fadeIn('slow');
    } else {
      $('a.back-to-top').fadeOut('slow');
    }
    });
    $('a.back-to-top, a.simple-back-to-top').click(function() {
    $('html, body').animate({
      scrollTop: 0
    }, 700);
    return false;
    });
  </script>

 </body>
</html>
